package com.yunupmall.service.admin.service;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yunupmall.api.fordVO.CommiditySpecesVo;
import com.yunupmall.api.fordVO.CommodityVo;
import com.yunupmall.api.fordentity.Commodity;
import com.yunupmall.api.fordentity.Specs;
import com.yunupmall.api.fordentity.SpecsCommodity;
import com.yunupmall.entity.admin.commoditypojo.*;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface CommodityService extends IService<Commodity> {
    /**
     * 商品分页
     * @return
     */
    Page<CommodityVo> pageData(CommodityVo commodityVo);

    /**
     * 商品删除
     * @return
     */
   String  del(Integer id);
   /**
    * 商品添加
    * @return
    */
   Integer insertData(CommodityVo commodityVo);

    /**
     * 商品更新
     * @return
     */
     String updateData(CommodityVo commodityVo);


    /**
     * 获取商品LIst和最新商品
     * @param commodityVo
     * @return
     */
    List<Commodity> newcommotityID(CommodityVo commodityVo);


   List<Commodity> selectDate(int thispage, int sizepage);

    KindCount getKindCount();

    List<Commodity> getcommoditywhereDate(CommodityWhere commodityWhere);

    //条件检索数据量
    int getDataCount(CommodityWhere commodityWhere);

    //检索该种类下的商品数据
    List<KindUpDate> queryKindUpdata(Integer k_id, Integer thispage, Integer pagesize);

    //检索该种类下的商品数据总数
    int quetyCounts(Integer k_id);



    //插入商品规格
    int insertcommotitySpecs(List<ResultAdd> specs, Integer id);

    //为新加的商品添加规格
    int AddceatecommotitySpecs(List<Specs> addcommtitySpecs, Integer cid);

    //添加新商品信息
    int insertCommtityData(AddCommotityimage addCommotityimage);

    //查看该类别下的商品规格名称
    List<SpecsName> quetyKind_specsList(Integer id);

    //查看规格值
    List<SpecsValues> querySpecsUpData(String SpecsName, Integer k_id);

    //添加商品规格值
    int addcommotity_specsvalues(@Param("list") List<AllData> allData, Integer newSpecsID);

    //查询该产品ID下的规格
    List<SpecsCommodity> queryThisDataList(Integer c_id);

    int deleteCommtityThissku(Integer id);
}
